package com.blrs.domain;

import java.util.Date;

import com.blrs.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.blrs.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 【请填写功能名称】对象 sub_project_info
 * 
 * @author ruoyi
 * @date 2023-12-01
 */
public class SubProjectInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private String id;

    /** 项目id */
    @Excel(name = "项目id")
    private String projectId;

    /** 项目编号 */
    @Excel(name = "项目编号")
    private String projectNumber;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 产品id */
    @Excel(name = "产品id")
    private String productId;

    /** 产品名称 */
    @Excel(name = "产品名称")
    private String productName;

    /** 外协公司 */
    @Excel(name = "外协公司")
    private String outsourcingCompany;
    private String outsourcingId;

    /** 执行人id */
    @Excel(name = "执行人id")
    private String executorId;

    /** 执行人 */
    @Excel(name = "执行人")
    private String executorName;

    /** 费用 */
    @Excel(name = "费用")
    private String cost;

    /** 类型（采购,合作,自己） */
    @Excel(name = "类型", readConverterExp = "采=购,合作,自己")
    private String type;

    /** 计划开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 计划结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 创建人id */
    @Excel(name = "创建人id")
    private String creationId;

    /** 创建人姓名 */
    @Excel(name = "创建人姓名")
    private String creationName;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date creationTime;
    /** 变更说明 */
    private String changeNote;

    /** 启动时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    //@Excel(name = "启动时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date attackTime;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    //@Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date completeTime;
    /** 状态（立项,实施,审核,交付,完成,终止） */
    //@Excel(name = "状态", readConverterExp = "立项0,实施1,审核2,交付3,完成4,终止5")
    private String state;
    private String subProjectStage;

    public String getChangeNote() {
        return changeNote;
    }

    public void setChangeNote(String changeNote) {
        this.changeNote = changeNote;
    }
    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }
    public void setProjectId(String projectId) 
    {
        this.projectId = projectId;
    }

    public String getProjectId() 
    {
        return projectId;
    }
    public void setProjectNumber(String projectNumber) 
    {
        this.projectNumber = projectNumber;
    }

    public String getProjectNumber() 
    {
        return projectNumber;
    }
    public void setProjectName(String projectName) 
    {
        this.projectName = projectName;
    }

    public String getProjectName() 
    {
        return projectName;
    }
    public void setProductId(String productId) 
    {
        this.productId = productId;
    }

    public String getProductId() 
    {
        return productId;
    }
    public void setProductName(String productName) 
    {
        this.productName = productName;
    }

    public String getProductName() 
    {
        return productName;
    }
    public void setOutsourcingCompany(String outsourcingCompany) 
    {
        this.outsourcingCompany = outsourcingCompany;
    }

    public String getOutsourcingCompany() 
    {
        return outsourcingCompany;
    }
    public void setExecutorId(String executorId)
    {
        this.executorId = executorId;
    }

    public String getExecutorId()
    {
        return executorId;
    }
    public void setExecutorName(String executorName) 
    {
        this.executorName = executorName;
    }

    public String getExecutorName() 
    {
        return executorName;
    }
    public void setCost(String cost) 
    {
        this.cost = cost;
    }

    public String getCost() 
    {
        return cost;
    }
    public void setType(String type) 
    {
        this.type = type;
    }

    public String getType() 
    {
        return type;
    }
    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }
    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }
    public void setCreationId(String creationId)
    {
        this.creationId = creationId;
    }

    public String getCreationId()
    {
        return creationId;
    }
    public void setCreationName(String creationName) 
    {
        this.creationName = creationName;
    }

    public String getCreationName() 
    {
        return creationName;
    }
    public void setCreationTime(Date creationTime) 
    {
        this.creationTime = creationTime;
    }

    public Date getCreationTime() 
    {
        return creationTime;
    }

    public String getSubProjectStage() {
        return subProjectStage;
    }

    public void setSubProjectStage(String subProjectStage) {
        this.subProjectStage = subProjectStage;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public Date getAttackTime() {
        return attackTime;
    }

    public void setAttackTime(Date attackTime) {
        this.attackTime = attackTime;
    }

    public Date getCompleteTime() {
        return completeTime;
    }

    public void setCompleteTime(Date completeTime) {
        this.completeTime = completeTime;
    }

    public String getOutsourcingId() {
        return outsourcingId;
    }

    public void setOutsourcingId(String outsourcingId) {
        this.outsourcingId = outsourcingId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("projectId", getProjectId())
            .append("projectNumber", getProjectNumber())
            .append("projectName", getProjectName())
            .append("productId", getProductId())
            .append("productName", getProductName())
            .append("outsourcingCompany", getOutsourcingCompany())
            .append("executorId", getExecutorId())
            .append("executorName", getExecutorName())
            .append("cost", getCost())
            .append("type", getType())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("creationId", getCreationId())
            .append("creationName", getCreationName())
            .append("creationTime", getCreationTime())
            .toString();
    }
}
